<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>Tekdaqc Firmware: Analog_Input.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="customstyle.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">Tekdaqc Firmware
   &#160;<span id="projectnumber">1.0.2.0</span>
   </div>
   <div id="projectbrief">The firmware of the Tekdaqc.</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('_analog___input_8h.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">Analog_Input.h File Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Header file for the Tekdaqc_Input data structure.  
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="_tekdaqc___debug_8h_source.html">Tekdaqc_Debug.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="_tekdaqc___error_8h_source.html">Tekdaqc_Error.h</a>&quot;</code><br/>
<code>#include &quot;stm32f4xx.h&quot;</code><br/>
<code>#include &quot;<a class="el" href="_tekdaqc__config_8h_source.html">Tekdaqc_Config.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="_a_d_s1256___driver_8h_source.html">ADS1256_Driver.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="boolean_8h_source.html">boolean.h</a>&quot;</code><br/>
</div>
<p><a href="_analog___input_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_analog___input__t.html">Analog_Input_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Data structure used to store the state and requirements of an analog input to the Tekdaqc. This data structure contains all the information related to a particular input to the Tekdaqc, including values and allowable range. Please note that while there is nothing to stop you from manipulating the values of the structure directly, it is not recommended as it could put the structure in an indeterminate state. Instead, manipulation functions are provided which will ensure that all state related implications are addressed.  <a href="struct_analog___input__t.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ga7b523129daacaeca69045b3adb1aaf54"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7b523129daacaeca69045b3adb1aaf54"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__analog__input.html#ga7b523129daacaeca69045b3adb1aaf54">MAX_ANALOG_INPUT_NAME_LENGTH</a>&#160;&#160;&#160;24</td></tr>
<tr class="memdesc:ga7b523129daacaeca69045b3adb1aaf54"><td class="mdescLeft">&#160;</td><td class="mdescRight">The maximum number of characters for the name of an analog input. <br/></td></tr>
<tr class="separator:ga7b523129daacaeca69045b3adb1aaf54"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3f128795c69a685d5e905c4117008271"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3f128795c69a685d5e905c4117008271"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__analog__input.html#ga3f128795c69a685d5e905c4117008271">ANALOG_INPUT_BUFFER_SIZE</a>&#160;&#160;&#160;100U /* 100 samples. Other code expects it to &lt;= 255. */</td></tr>
<tr class="memdesc:ga3f128795c69a685d5e905c4117008271"><td class="mdescLeft">&#160;</td><td class="mdescRight">The number or readings to store in the circular buffer for the input. <br/></td></tr>
<tr class="separator:ga3f128795c69a685d5e905c4117008271"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:ga99258f91accf55ecea49707692a3889b"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__analog__input.html#ga99258f91accf55ecea49707692a3889b">AnalogInputStatus_t</a> { <a class="el" href="group__analog__input.html#gga99258f91accf55ecea49707692a3889baab4ee4ac298eaa158dc5d14eb9ca8b60">BELOW_RANGE</a>, 
<a class="el" href="group__analog__input.html#gga99258f91accf55ecea49707692a3889ba19a150b47d1db72e2947bef12bd1ca7f">IN_RANGE</a>, 
<a class="el" href="group__analog__input.html#gga99258f91accf55ecea49707692a3889baa2ccf1ed52430dd6b0070370d5125d7e">ABOVE_RANGE</a>
 }</td></tr>
<tr class="memdesc:ga99258f91accf55ecea49707692a3889b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tekdaqc input status enumeration. Defines the possible status states of an input to the Tekdaqc, both analog and digital.  <a href="group__analog__input.html#ga99258f91accf55ecea49707692a3889b">More...</a><br/></td></tr>
<tr class="separator:ga99258f91accf55ecea49707692a3889b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gaf65fcf2267ddebcf80049303dc9507ce"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__analog__input.html#gaf65fcf2267ddebcf80049303dc9507ce">AnalogInputsInit</a> (void)</td></tr>
<tr class="memdesc:gaf65fcf2267ddebcf80049303dc9507ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize all of the submodules for analog inputs.  <a href="group__analog__input.html#gaf65fcf2267ddebcf80049303dc9507ce">More...</a><br/></td></tr>
<tr class="separator:gaf65fcf2267ddebcf80049303dc9507ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacdd326a56de1d837605d610cc638a959"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__tekdaqc__error.html#ga19df05d919ecca7a7501b35ae9080a32">Tekdaqc_Function_Error_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__analog__input.html#gacdd326a56de1d837605d610cc638a959">CreateAnalogInput</a> (char keys[][<a class="el" href="group__command__parser.html#ga6147771b5547853f33eb838895e3d5a2">MAX_COMMANDPART_LENGTH</a>], char values[][<a class="el" href="group__command__parser.html#ga6147771b5547853f33eb838895e3d5a2">MAX_COMMANDPART_LENGTH</a>], uint8_t count)</td></tr>
<tr class="memdesc:gacdd326a56de1d837605d610cc638a959"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a new analog input structure and adds it to the board's list.  <a href="group__analog__input.html#gacdd326a56de1d837605d610cc638a959">More...</a><br/></td></tr>
<tr class="separator:gacdd326a56de1d837605d610cc638a959"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab88a5ebe3b0749d880eec3c892649454"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__tekdaqc__error.html#ga19df05d919ecca7a7501b35ae9080a32">Tekdaqc_Function_Error_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__analog__input.html#gab88a5ebe3b0749d880eec3c892649454">AddAnalogInput</a> (<a class="el" href="struct_analog___input__t.html">Analog_Input_t</a> *input)</td></tr>
<tr class="memdesc:gab88a5ebe3b0749d880eec3c892649454"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds an analog input to the board's list.  <a href="group__analog__input.html#gab88a5ebe3b0749d880eec3c892649454">More...</a><br/></td></tr>
<tr class="separator:gab88a5ebe3b0749d880eec3c892649454"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga221c8c5a1bbe659d613fa81a6a834dd9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__tekdaqc__error.html#ga19df05d919ecca7a7501b35ae9080a32">Tekdaqc_Function_Error_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__analog__input.html#ga221c8c5a1bbe659d613fa81a6a834dd9">RemoveAnalogInput</a> (char keys[][<a class="el" href="group__command__parser.html#ga6147771b5547853f33eb838895e3d5a2">MAX_COMMANDPART_LENGTH</a>], char values[][<a class="el" href="group__command__parser.html#ga6147771b5547853f33eb838895e3d5a2">MAX_COMMANDPART_LENGTH</a>], uint8_t count)</td></tr>
<tr class="memdesc:ga221c8c5a1bbe659d613fa81a6a834dd9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes an analog input from the board's list.  <a href="group__analog__input.html#ga221c8c5a1bbe659d613fa81a6a834dd9">More...</a><br/></td></tr>
<tr class="separator:ga221c8c5a1bbe659d613fa81a6a834dd9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga30736f8a2ceb6a1993055302893efefe"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__tekdaqc__error.html#ga19df05d919ecca7a7501b35ae9080a32">Tekdaqc_Function_Error_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__analog__input.html#ga30736f8a2ceb6a1993055302893efefe">ListAnalogInputs</a> (void)</td></tr>
<tr class="memdesc:ga30736f8a2ceb6a1993055302893efefe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prints a representation of all the added analog inputs.  <a href="group__analog__input.html#ga30736f8a2ceb6a1993055302893efefe">More...</a><br/></td></tr>
<tr class="separator:ga30736f8a2ceb6a1993055302893efefe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga697505715d2411ad856bca3d1e726913"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_analog___input__t.html">Analog_Input_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__analog__input.html#ga697505715d2411ad856bca3d1e726913">GetAnalogInputByNumber</a> (uint8_t number)</td></tr>
<tr class="memdesc:ga697505715d2411ad856bca3d1e726913"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve the analog input structure corresponding to a physical channel.  <a href="group__analog__input.html#ga697505715d2411ad856bca3d1e726913">More...</a><br/></td></tr>
<tr class="separator:ga697505715d2411ad856bca3d1e726913"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3d7d6daf5f4b4a4c455dd9b9aec6053b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__analog__input.html#ga3d7d6daf5f4b4a4c455dd9b9aec6053b">WriteAnalogInput</a> (<a class="el" href="struct_analog___input__t.html">Analog_Input_t</a> *input)</td></tr>
<tr class="memdesc:ga3d7d6daf5f4b4a4c455dd9b9aec6053b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prints data from the analog input structure to the data connection.  <a href="group__analog__input.html#ga3d7d6daf5f4b4a4c455dd9b9aec6053b">More...</a><br/></td></tr>
<tr class="separator:ga3d7d6daf5f4b4a4c455dd9b9aec6053b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8230666b0182b4ce633c20860b5146ff"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__analog__input.html#ga8230666b0182b4ce633c20860b5146ff">SetAnalogInputWriteFunction</a> (<a class="el" href="group__tekdaqc__configuration.html#ga163b2a4cc55a569e988df48908631967">WriteFunction</a> writeFunction)</td></tr>
<tr class="memdesc:ga8230666b0182b4ce633c20860b5146ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the function to use for writing strings to the data connection.  <a href="group__analog__input.html#ga8230666b0182b4ce633c20860b5146ff">More...</a><br/></td></tr>
<tr class="separator:ga8230666b0182b4ce633c20860b5146ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga87d73c733aa66effbdafe2a15b7c4a54"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__analog__input.html#ga87d73c733aa66effbdafe2a15b7c4a54">ExtAnalogInputToString</a> (ExternalMuxedInput_t input)</td></tr>
<tr class="memdesc:ga87d73c733aa66effbdafe2a15b7c4a54"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the string representation of an externally muxed analog input.  <a href="group__analog__input.html#ga87d73c733aa66effbdafe2a15b7c4a54">More...</a><br/></td></tr>
<tr class="separator:ga87d73c733aa66effbdafe2a15b7c4a54"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae568c96624ef9e126175706f85eec3b4"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__analog__input.html#gae568c96624ef9e126175706f85eec3b4">IntAnalogInputToString</a> (InternalAnalogInput_t input)</td></tr>
<tr class="memdesc:gae568c96624ef9e126175706f85eec3b4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the string representation of an internally muxed analog input.  <a href="group__analog__input.html#gae568c96624ef9e126175706f85eec3b4">More...</a><br/></td></tr>
<tr class="separator:gae568c96624ef9e126175706f85eec3b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Contains public definitions and data types for the Tekdaqc_Input data structure.</p>
<dl class="section author"><dt>Author</dt><dd>Jared Woolston (<a href="#" onclick="location.href='mai'+'lto:'+'jwo'+'ol'+'sto'+'n@'+'ten'+'ki'+'v.c'+'om'; return false;">jwool<span style="display: none;">.nosp@m.</span>ston<span style="display: none;">.nosp@m.</span>@tenk<span style="display: none;">.nosp@m.</span>iv.c<span style="display: none;">.nosp@m.</span>om</a>) </dd></dl>
<dl class="section since"><dt>Since</dt><dd>v1.0.0.0 </dd></dl>

<p>Definition in file <a class="el" href="_analog___input_8h_source.html">Analog_Input.h</a>.</p>
</div></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="dir_2ee1bcc70ffbdd9fa2e6058af4d56b44.html">TekDAQC_Firmware</a></li><li class="navelem"><a class="el" href="dir_4c1963c2cd69a04d7b5a824496e256d8.html">inc</a></li><li class="navelem"><a class="el" href="_analog___input_8h.html">Analog_Input.h</a></li>
    <li class="footer">Generated on Mon Jul 28 2014 23:42:40 for Tekdaqc Firmware by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
  </ul>
</div>
</body>
</html>
